name: test library

on: pull_request
env:
  RUST_BACKTRACE: 1

jobs:
  build-tauri-core:
    runs-on: ${{ matrix.platform }}

    strategy:
      fail-fast: false
      matrix:
        platform: [ubuntu-latest, macos-latest, windows-latest]

    steps:
      - uses: actions/checkout@v2
      - name: install stable
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
      - name: install webkit2gtk (ubuntu only)
        if: matrix.platform == 'ubuntu-latest'
        run: |
          sudo apt-get update
          sudo apt-get install -y webkit2gtk-4.0
      - name: build
        run: |
          cd ./tauri
          cargo build
        env:
          TAURI_DIST_DIR: ${{ runner.workspace }}/tauri/tauri/examples/communication/dist
          TAURI_DIR: ${{ runner.workspace }}/tauri/tauri/examples/communication/src-tauri
      - name: test
        run: |
          cargo test
        env:
          TAURI_DIST_DIR: ${{ runner.workspace }}/tauri/tauri/examples/communication/dist
          TAURI_DIR: ${{ runner.workspace }}/tauri/tauri/examples/communication/src-tauri

  build-tauri-bundler:
    runs-on: ${{ matrix.platform }}

    strategy:
      fail-fast: false
      matrix:
        platform: [ubuntu-latest, macos-latest, windows-latest]

    steps:
      - uses: actions/checkout@v2
      - name: install stable
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
      - name: build
        run: |
          cd ./cli/tauri-bundler
          cargo build

  test-tauri-js-cli:
    runs-on: ${{ matrix.platform }}

    strategy:
      fail-fast: false
      matrix:
        platform: [ubuntu-latest, macos-latest, windows-latest]

    steps:
      - uses: actions/checkout@v2
      - name: install webkit2gtk (ubuntu only)
        if: matrix.platform == 'ubuntu-latest'
        run: |
          sudo apt-get update
          sudo apt-get install -y webkit2gtk-4.0
      - run: cargo install --path ./cli/tauri-bundler --force
      - name: test
        timeout-minutes: 15
        run: |
          cd ./cli/tauri.js
          yarn
          yarn test
